using System;
using Microsoft.ExtendedReflection.Utilities;
using Microsoft.Pex.Engine.ComponentModel;
using Microsoft.Pex.Engine.SearchFrontiers;
using Microsoft.Pex.Framework.Strategies;

namespace Benchmarks
{
    public class RandomSearchFrontier: PexSearchFrontierAttributeBase
    {
        public RandomSearchFrontier(bool isRoundRobin) : base(isRoundRobin)
        {
        }

        protected override IPexSearchFrontier CreateFrontier(IPexExplorationEngine host, IPexBuiltinSearchFrontiers builtinSearchFrontiers)
        {
            return builtinSearchFrontiers.Default(RandomHelper.CreateRandom(),null,false);
        }


    }

    public class OnlyFitnexSearchFrontier : PexSearchFrontierAttributeBase
    {
        public OnlyFitnexSearchFrontier(bool isRoundRobin)
            : base(isRoundRobin)
        {
        }

        protected override IPexSearchFrontier CreateFrontier(IPexExplorationEngine host, IPexBuiltinSearchFrontiers builtinSearchFrontiers)
        {
            return builtinSearchFrontiers.Default(null, null, true);
        }


    }
}